package si.yun.web;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import si.yun.entity.ProductTable;
import si.yun.service.OpeService;
import si.yun.utils.JsonData;

import java.util.List;
import java.util.Map;

/**
 * @ClassName OpeHomeWeb
 * @description:
 * @Author 李军瑶
 * @Date 2021/7/29 16:08
 **/
@RestController
@RequestMapping("/OpeHome")
@PropertySource({"classpath:config.properties"})
public class OpeHomeWeb {

    @Autowired
    private OpeService service;
    //商品图片路径
    @Value("${productURL}")
    private  String productURL;

    /**
    * @Description 统计昨日订单数和昨日销售额度
    * @return si.yun.utils.JsonData
    * @Date 19:35 2021/7/29
    */
    @GetMapping("/getYesterdayOrder")
    public JsonData getYesterdayOrder(){
        List<Map<String,Object>> count=service.getYesterdayOrder();
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
     * @Description 统计全部订单数和销售总额
     * @return si.yun.utils.JsonData
     * @Date 16:22 2021/7/29
     */
    @GetMapping("/getAllOrders")
    public JsonData getAllOrders(){
        List<Map<String,Object>> count=service.getAllOrders();
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
    * @Description 统计待审核课程
    * @return si.yun.utils.JsonData
    * @Date 8:48 2021/7/30
    */
    @PostMapping("/getAuditCourses")
    public JsonData getAuditCourses(Integer AuditCourses){
        List<Map<String,Object>> count=service.getAuditCourses(AuditCourses);
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
    * @Description 统计待审核商品
    * @return si.yun.utils.JsonData
    * @Date 9:57 2021/7/30
    */
    @PostMapping("/getAuditProduct")
    public JsonData getAuditProduct(Integer AuditProduct){
        List<Map<String,Object>> count=service.getAuditProduct(AuditProduct);
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
    * @Description 获取指定日期内所有订单——统计图
    * @return si.yun.utils.JsonData
    * @Date 21:25 2021/8/1
    */
    @PostMapping("/getSpecifyDate")
    public JsonData getSpecifyDate(String SpecifyDate){
        List<Integer> count=service.getSpecifyDate(SpecifyDate);
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
    * @Description 获取两个日期的订单 求百分比
    * @return si.yun.utils.JsonData
    * @Date 19:09 2021/8/3
    */
    @PostMapping("/getOrdersNumber")
    public JsonData getOrdersNumber(String yesterday, String today){
        Integer count=service.getOrdersNumber(yesterday,today);
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }

    /**
    * @Description 获取下拉框的分类
    * @return si.yun.utils.JsonData
    * @Date 19:16 2021/8/3
    */
    @GetMapping("/getClassifys")
    public JsonData getClassifys(){
        List<Map<String,Object>> count=service.getClassifys();
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }
    /**
    * @Description 获取树形分类
    * @return si.yun.utils.JsonData
    * @Date 14:06 2021/8/4
    */
    @PostMapping("/getZtree")
    public JsonData getZtree(Integer parentId){
        List<Map<String,Object>> count=service.getZtree(parentId);
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }
    /**
    * @Description 获取商品列表table表格
    * @return si.yun.utils.JsonData
    * @Date 17:22 2021/8/4
    */
    @PostMapping("/getTables")
    public JsonData getTables(ProductTable protab){

        List<Map<String,Object>> count=service.getTables(protab);

        for(Map<String,Object> m:count){
            String img= (String) m.get("main_image");
            m.put("main_image",productURL+img);
        }
        return count!=null? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }
    /**
    * @Description 修改商品信息
    * @return si.yun.utils.JsonData
    * @Date 17:34 2021/8/6
    */
    @PostMapping("/setProduct")
    public JsonData setProduct(ProductTable protab){
        int count=service.setProduct(protab);
        return count!=0? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }
    /**
    * @Description 删除商品信息
    * @return si.yun.utils.JsonData
    * @Date 14:36 2021/8/10
    */
    @PostMapping("/reProduct")
    public JsonData reProduct(Integer productId){
        int count=service.reProduct(productId);
        return count!=0? JsonData.buildSuccess(count): JsonData.buildError("信息为空");
    }
    /**
    * @Description 查看审核详情
    * @return si.yun.utils.JsonData
    * @Date 19:14 2021/8/10
    */
    @PostMapping("/getAuditDetails")
    public JsonData getAuditDetails(Integer productId, Integer type){
        List<Map<String, Object>> list = service.getAuditDetails(productId, type);
        return list!=null? JsonData.buildSuccess(list): JsonData.buildError("信息为空");
    }
    /**
    * @Description 商品导入
    * @return si.yun.utils.JsonData
    * @Date 20:16 2021/8/12
    */
    /*@RequestMapping("/addInsimportExcel")
    public JsonData addInsimportExcel(MultipartFile file, HttpSession session) {
        List<SyProduct> list=new ArrayList<>();
        SyProduct sy=null;

        try {
            List<List<String>> lists = TemplateExcelUtil.readExcel(file.getInputStream());

            if (!CollectionUtils.isEmpty(lists)) {
                for (int a = 0; a < lists.size(); a++) {
                    List<String> list2 = lists.get(a);
                    sy = createProductcPoi.createProductcPoi(list2, session);
                    list.add(sy);
                    ;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        int num = service.addInsimportExcel(list);
        return num>0?JsonData.buildSuccess(num):JsonData.buildError("服务器出错了");
    }*/
    /**
    * @Description 商品操作日志
    * @return si.yun.utils.JsonData
    * @Date 16:54 2021/8/13
    */
    @PostMapping("/getOperation")
    public JsonData getOperation(Integer productId){
        List<Map<String, Object>> list = service.getOperation(productId);
        return list!=null? JsonData.buildSuccess(list): JsonData.buildError("信息为空");
    }
    /**
    * @Description 商品审核列表
    * @return si.yun.utils.JsonData
    * @Date 11:17 2021/8/15
    */
    @PostMapping("/getCommodityAudit")
    public JsonData getCommodityAudit(ProductTable protab){

        List<Map<String, Object>> list = service.getCommodityAudit(protab);

        for(Map<String,Object> m:list){
            String img= (String) m.get("main_image");
            m.put("main_image",productURL+img);
        }
        return list!=null? JsonData.buildSuccess(list): JsonData.buildError("信息为空");
    }
    /**
    * @Description 统计审核状态的商品数量
    * @return si.yun.utils.JsonData
    * @Date 17:03 2021/8/15
    */
    @PostMapping("/getStatisticalAuditStatus")
    public JsonData getStatisticalAuditStatus(Integer productSate){
        int status = service.getStatisticalAuditStatus(productSate);
        return status!=-1? JsonData.buildSuccess(status): JsonData.buildError("信息为空");
    }
    /**
    * @Description 商品审核弹出层
    * @return si.yun.utils.JsonData
    * @Date 20:15 2021/8/17
    */
    @PostMapping("/setCommodityAudit")
    public JsonData setCommodityAudit(Integer productSate, Integer productId, String result, String details, Integer type){
        int status = service.setCommodityAudit(productSate,productId,result,details,type);
        return status!=0? JsonData.buildSuccess(status): JsonData.buildError("信息为空");
    }
    /**
    * @Description 商品订单列表
    * @return si.yun.utils.JsonData
    * @Date 10:00 2021/8/24
    */
    @PostMapping("/addOrdersGoods")
    public JsonData addOrdersGoods(ProductTable protab){
        List<Map<String, Object>> list = service.addOrdersGoods(protab);
        return list!=null? JsonData.buildSuccess(list): JsonData.buildError("信息为空");
    }
    /**
    * @Description 统计商品订单数量
    * @return si.yun.utils.JsonData
    * @Date 17:57 2021/8/25
    */
    @PostMapping("/getOrderNumber")
    public JsonData getOrderNumber(Integer orderType, Integer orderStatus){
        int orderNumber = service.getOrderNumber(orderType, orderStatus);
        return orderNumber!=0? JsonData.buildSuccess(orderNumber): JsonData.buildError("信息为空");
    }

}
